                        Synthesis of microwave lossy filters

                                    LossyFilters

                                       2.0.3
                                   June 11, 2013

                                         by

       J.M.Rius, J.Mateu, J.M.Tamayo, C.Collado, A. Padilla and J.O'Callaghan
                     Universitat Politcnica de Catalunya (UPC)



Contents
========

 1  Synthesis of microwave lossy filters
    1.1  References:

 2  LossyFilters software
    2.1  Functionality of the free GUI and libraries
    2.2  Functionality of the non-free libraries

 3  License terms

 4  Installing the application

 5  Installing the non-free libraries license

 6  Running the application
    6.1  Launching the GUI
    6.2  Command line arguments
    6.3  Examples


Appendix
========

 A  Install the python interpreter and libraries in MS Windows

 B  Install the python interpreter and libraries in Linux
    B.1  Install from the repository
         B.1.1  Installation example
         B.1.2  Full list of packages
         B.1.3  Notes:
    B.2  Download, compile and install the sources



1  Synthesis of microwave lossy filters
***************************************

The project  goals  at  large  are  to  investigate  novel  lossy  filter  synthesis
techniques to obtain filters whose insertion loss flatness can be made equal to that
of  an  (ideal)  lossless filter, despite the limited Q of the resonators within the
filter. This project was supported by the European Space Agency (ESA) under contract
21398/08/NL/GLC.

The classical  synthesis  procedure  consists  on  obtaining  a  purely reactive (no
dissipation effect) network that defines the resonant frequency  of  the  resonators
forming  the  filter  and  the  way  they  are  coupled.  However, in practice, some
dissipation always exist in the final filter implementation which can  be  evaluated
afterwards  by introducing the material losses (finite Q of the resonators) into the
synthesized lossless network.

Among other effects, this approach leads to filters with minimum insertion  loss  in
the passband at one frequency at the expense of additional passband rounding towards
the band-edges, being the use of high Q resonators the only way to  achieve  filters
with  flat  pass-band  response by means of classical synthesis techniques. This may
result in heavy and large filters which might be impractical in space systems, or in
wireless and handset components with strong demand for low-cost and small size.

This can be overcome by the use of non standard filter synthesis techniques such as:

   . *Pre-distortion  synthesis:* synthesizes  a lossless network whose pole placement
     is such that, after introducing the losses,  produces  the  desired  (improved)
     in-band  flatness.  However, this is at the expense of increased in-band signal
     reflections.

          R. J. Cameron, C. M. Kudsia,  R.R.  Mansour,  Microwave  Filters  for
          Communication  systems.  Fundamentals, Design, and applications, John
          Wiley & Sons, 2007. Dissipation I movement de sigma

          Ming Yu et al., "Predistortion Technique  for  Cross-Coupled  Filters
          and its application to satellite communication systems", IEEE MTT-51,
          pp. 2505-2515, Nov. 2003

   . *Prescribed insertion loss synthesis:* In order to  obtain  both  good  insertion
     loss  flatness and good return loss, the insertion loss flatness is obtained at
     the expense of an  increase  of  the  overall  insertion  loss,  therefore  the
     resulting filters are of use in those applications where the filters are placed
     after the low noise amplifier without affecting the noise figure, as it  occurs
     in input multiplexers (IMUX) for satellite transponders.

          V. Miraftab,  Ming  Yu,  "Advanced  Coupling  Matrix  and  Admittance
          Function Synthesis Techniques  for  Dissipative  Microwave  Filters,"
          Microwave  Theory  and  Techniques,  IEEE  Transactions  on , vol.57,
          no.10, pp.2429-2438, Oct. 2009.

          I. C. Hunter, A. Guyette,  and  R.  D.  Pollard,  "Passive  Microwave
          Receive  Filter  Network  Using  Low-Q  Resonators",  IEEE  microwave
          Magazine, September 2005.

          A.C. Guyette, I. C. Hunter, R.  Pollard,  "The  design  of  microwave
          bandpass  filters  using  resonators  with nonuniform Q", IEEE MTT-54
          (11), November 2006, pp.3914-3922.

Using these lossy filters synthesis techniques, very low resonator  Q  that  can  be
employed  and,  therefore, low cost and compact filters (such as microstrip filters)
can be realized.


1.1  References:
================

The main references to the work in this project are:

     J.Mateu, C. Collado, J.M. O'Callaghan,
     "Lossy Filter Synthesis and Study of Topology Solution Space",
     /ESA working paper 2366/. TEC-ETM/2009.142/CE. First issued: September 2008.

     J. Mateu, A. Padilla, C. Collado, M. Martinez-Mendoza, E. Rocas, C. Ernst,
     J M. O'Callaghan,
     "Synthesis of 4th order Lossy Filters with uniform Q distribution",
     Microwave   Symposium   Digest   (MTT),  /2010  IEEE  MTT-S  International/,
     pp.568-571, 23-28 May 2010.
     doi: 10.1109/MWSYM.2010.5517741
     URL:
     http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5517741&isnumber=5514662
     URL:
     http://upcommons.upc.edu/e-prints/bitstream/2117/10412/1/Synthesis%20of%204th%20order%20Lossy%20Filters%20with%20uniform%20Q%20distribution.pdf

     A. Padilla, J. Mateu, C. Collado,, C. Ernst, J.M. Rius,, J.M. Tamayo, J.M.
     O'Callaghan,
     "Comparison   of  lossy  filters  and  predistorted  filters  using  novel
     software",
     Microwave  Symposium  Digest  (MTT),  /2010   IEEE   MTT-S   International/,
     pp.1720-1723, 23-28 May 2010
     doi: 10.1109/MWSYM.2010.5517713
     URL:
     http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5517713&isnumber=5514662
     URL:
     http://upcommons.upc.edu/e-prints/bitstream/2117/10413/1/Comparison%20of%20lossy%20filters%20and%20predistorted%20filters%20using%20novel%20software.pdf



2  LossyFilters software
************************

*Authors:*

J.M.Rius, J.Mateu, J.M.Tamayo, C.Collado, A. Padilla and J.O'Callaghan.
Dpt. Signal Theory and Communications, Universitat Politcnica de Catalunya (UPC),
Copyright: (c)2009 Universitat Politcnica de Catalunya (UPC).

Contact:

     lossyfilters@tsc.upc.edu
     http://www.tsc.upc.edu/lossyfilters

Acknowledgement:

     The software  was  developed in the frame of contract 21398/08/NL/GLC with
     the European Space Agency (ESA).  Technical  Offer  was  Christoph  Ernst.
     Further  features  were  developed  under  contract  UPC-C7767 with Thales
     Alenia Space Espaa (TAS-E).

     Contributions to the definition of the software functionality and  testing
     have  been made by Christoph Ernst, Mnica Martnez Mendoza and other ESA-
     ESTEC personnel, and Santiago Sobrino and Luis Rogl from TAS-E.

*Software description:*

The LossyFilters software package has been written to synthesize  filters  following
various forms of classical (no-loss considered in the synthesis), pre-distortion and
prescribed insertion loss synthesis. This software obtains the  coupling  matrix  of
several  network  topologies for a given response and allows performing rotations on
them to find the desired topology. Additionally, the software allows to evaluate the
effect  of  loss  in  the networks resulting from the synthesis, even in those cases
where the synthesis results in an ideal lossless network (i.e., classical  and  pre-
distortion synthesis).

The software package has been divided in two parts:

   . *Open-source   GUI  and  free  libraries:* The  graphical  user  interface  (GUI)
     MWfiltersGUI, the 'Free Filter Library' and the 'Common Functions Library'  are
     free  open-source  software  with  capability  to  edit  the  input parameters,
     synthesize  Butterwork,  Chebyshev  and  Quasieliptic  filters   with   minimum
     insertion loss, rotate and save the filter coupling matrix and display and save
     the [S] parameters. The GUI will also run the non-free libraries  if  they  are
     installed in the system.

   . * Non-free libraries:* The non-free libraries are not required but, when they are
     installed in the system, allow the synthesis of Generalized  Chebyshev  filters
     with  prescribed  transmission zeros and linear phase optimization ("Library of
     Extra Filters") and the synthesis of lossy filters with the pre-distortion  and
     prescribed insertion loss techniques ("Library of Lossy Filters).


2.1  Functionality of the free GUI and libraries
================================================

The GUI is full-featured with complete functionality to open, edit, save and execute
parameter files, as well as plot [S] parameters and manually edit coupling matrices:

   . Actions can be launched by menus, toolbar buttons or keyboard shortcuts.

   . There are tooltips in the parameters edit widgets.

   . Application output in main window log widget and status bar.

   . Modeless parameter edit dialog window with Accept / Compute / Discard  buttons,
     to  allow  the  computation  with  trial  parameter  values without closing the
     dialog.

   . Preventive data validation at the parameters edit widgets in order  to  prevent
     the user introducing invalid data.

   . Frequency  parameters edit widgets allow the user to set THz, GHz, MHz, kHZ, Hz
     units.

   . The parameter edit window detects if there are changes in  the  parameters,  so
     that  the  application  can  warn  the user if he is going to destroy non-saved
     changes.

   . Plots S-parameters graph with phase or group delay in right-axis.

   . Plots support adding, moving and deleting markers.

   . Select which results to plot.

   . Zoom S-parameter plot.

   . Manual and autoscaling for each axis of S-parameter plot.

   . Print S-parameter plot to printer or PDF file.

   . Display coupling matrices and Q of resonators.

   . Edit coupling matrix topology for non-zero elements optimization.

   . Coupling matrices window: Manual rotation, node scaling, element  anhilitation,
     add  non-resonant  nodes, edit matrix entries or Q values, file load/save, etc.
     There are facilities to undo and revert to any previous state.

   . Plot S-parameters computed from the current coupling matrix  compared  with  S-
     parameters  computed  from  the characteristic polynomials. Display the average
     error in dB.

   . Read [S] parameters from Touchstone format file.

   . Store, recover and compare results from different  computations  or  read  from
     Touchstone format file.

   . Specification mask read from file and plotted.

   . Sensitivity analysis.

   . User-selectable predistortion zeros.

   . Code fully documented with Doxygen.

The free libraries have functionality to:

   . Read and parse parameters file.

   . Write parameters file.

   . Printing strings to:

        - Console, when called from the command line.

        - Main window log widget, when called from the GUI.

   . Catches syntax errors in the parameter file.

   . Correctly handles non-ASCII characters. Reads and writes UTF-8 format parameter
     files, accepts non-English characters in the GUI and in  console  output.  When
     python reports that an output device is not able to print non-ASCII characters,
     the console interface replaces 8-bit characters by "?" in the output.

   . Filter synthesis: Butterworth, Chebyshev and Quasielpitic filters.

   . Generation of transversal coupling matrix (TCM) N+2.

   . Functions to generate rotation matrices and to find the  angle  that  zeroes  a
     given coupling matrix element.

   . Transformation from transversal coupling matrix (TCM) to folded coupling matrix
     (FCM) and to many other types of coupling matrices.

   . Calculation of the passband coupling matrix, which is obtained  from  the  low-
     pass  one  by a scaling. The resulting passband coupling matrix can be directly
     related to design parameters used for the filter design, such as  the  coupling
     between resonators.

   . Optimize  coupling  matrix  elements  for  a  given  topology  and resonator Q,
     adjusting  [S]  parameters  to  the  polynomials  [S]  parameters   or   to   a
     specification mask.

   . Prescribed  flatness for lossless-like filters with flat passband response. The
     quality factor of  a  filter  to  emulate  is  specified  in  order  to  append
     additional resonator losses.

   . Displays Q of resonators.

   . Compute energy stored at resonators and reactive couplings and power dissipated
     at resonators and resistive couplings.

   . Reports roundoff errors in polynomial roots and partial fraction expansion.

   . Reports error in S-parameters computed from  transversal  and  folded  coupling
     matrices   compared   with   S-parameters   computed  from  the  characteristic
     polynomials.

   . Code fully documented with Doxygen.


2.2  Functionality of the non-free libraries
============================================

   . The *"Library of Extra filters"* provides the following additional functions:

        - Generalized Chebyshev transfer function with arbitrary transmission  zeros
          [from Cameron, chapter 6].

        - Linear  phase equalization, optimizing the position of real and/or complex
          transmission zeros.

        - Code fully documented with Doxygen.

   . The *"Library of Lossy filters"* provides the following additional functions:

        - Filter losses: predistortion (conventional or adaptive).

        - Filter losses: "Prescribed insertion  loss"  with  non-Uniform  Q  case  1
          (k21+k11+k22 asymmetrical), case 2 (k21) and case 3 (k21+zero/pole).

        - FCM  matrix  rotation  to  obtain uniform Q in resonators for Lossy Filter
          case-1 (kS11 + kS21), N=4 and N=6 and  case-3  (kS21  +  pole/zero),  N=6.
          Automatic symmetrization of transmission zeros if necessary.

        - Code fully documented with Doxygen.



3  License terms
****************

Copyright: (c)2009 Universitat Politcnica de Catalunya (UPC).
Contact: lossyfilters@tsc.upc.edu
http://www.tsc.upc.edu/lossyfilters

The lossyfilters  software  package  described  below, including an open-source GUI,
free libraries and non-free libraries is owned  by  UPC  and  is  protected  by  the
applicable copyright laws and international treaty provisions.

This program  is  distributed  in  the  hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of  MERCHANTABILITY  or  FITNESS  FOR  A
PARTICULAR  PURPOSE.  This  program  is  distributed  as  is  and  with all possible
imperfections and faults. UPC does not warrant neither that the  operation  of  this
program  will  be  uninterrupted nor that it is error free. In no event shall UPC be
liable for any responsibilities arising out of the use  or  inability  to  use  this
program or the documentation.

   . *Open-source GUI and libraries*

     The graphical  user  interface  (GUI) mwfiltersgui.py and its associated files,
     the 'Free Filter Library' libfreefilters.py and the 'Common Functions  Library'
     libcommonfunc.py  are  free open-source software released under the GNU General
     Public License (GPL) version 3.

     You can redistribute it and/or modify it under the terms  of  the  GNU  GPL  as
     published  by the Free Software Foundation; either version 3 of the License, or
     (at your option) any later version. See the  GNU  GPL  for  more  details.  You
     should  have  received  a  copy  of the GNU GPL along with this program in file
     "LICENSE.GPL3"  or  file  "LICENSE.txt";  if  not,  download  it  from  http://
     www.gnu.org/licenses/gpl-3.0.html .

          Additional permission under GNU GPL version 3 section 7:

          If you  modify  this  Program,  or  any  covered  work, by linking or
          combining it with the "Extra Filters Library" (libextrafilters),  the
          "Lossy  Filters  Library"  (liblossyfilters)  or  the  "License Check
          Library" (libchecklicense), or modified versions of  that  libraries,
          containing   parts   covered   by   the   terms  described  in  files
          LICENSE.LIBEXTRAFILTERS and LICENSE.LIBLOSSYFILTERS, the licensors of
          this  Program grant you additional permission to convey the resulting
          work.

     Lossyfilters software GUI uses the open-source dbplot.py module, which is based
     in  part  on  the  work  of  the  Qwt  project (http://qwt.sf.net) and has been
     released by UPC under the terms of the GNU GPL version 3.

   . *Non-free libraries*

     The "Extra Filters Library" and  the  "Lossy  Filters  Library"  are  not  free
     software and need a user license from UPC.

        - "Extra  Filters  Library"  for  the  computation  of generalized Chebyshev
          filter characteristic polynomials is distributed  by  UPC  either  in  the
          source   file   "libextrafilters.py",   the  corresponding  bytecode  file
          "libextrafilters.pyc" or bound into  a  binary  executable  file.  License
          terms are described in the LICENSE.LIBEXTRAFILTERS file.

        - "Lossy  Filters Library" for the computation of characteristic polynomials
          including filter losses is distributed by UPC either in  the  source  file
          "liblossyfilters.py",       the      corresponding      bytecode      file
          "liblossyfilters.pyc" or bound into  a  binary  executable  file.  License
          terms are described in the LICENSE.LIBLOSSYFILTERS file.

        - The  "Extra  Filters  Library"  and  the  "Lossy Filters Library" need the
          "License Check Library", which distributed toghether with them  either  in
          the  executable Python bytecode file "libchecklicense.pyc" or bound into a
          binary executable  file.  The  source  file  "libchecklicense.py"  is  not
          distributed.  The  "License  Check  Library" has been developed by UPC for
          checking the user's license to run software  released  by  the  AntennaLab
          research  group  at  the  Department  of  Signal Theory and Communications
          (TSC). The "License Check Library" is  distributed  and  licensed  by  UPC
          under the same terms as the "Extra Filters Library" and the "Lossy Filters
          Library", with the following additional restrictions:

             * The source code is not distributed.

             * It is specially forbidden  to  modify  the  "License  Check  Library"
               source or binary code.

             * It  is  also forbidden to reverse engineer, decompile, or disassemble
               the "License Check  Library"  with  the  intent  to  violate  license
               agreement  of  the  "Extra  Filters  Library"  or  the "Lossy Filters
               Library".



4  Installing the application
*****************************

Lossyfilters software has been developed using Python interpreted language.  Running
the  application  (see "Running the application") requires either (i) to install the
Python interpreter and all additional libraries used by the program,  and  then  run
the  source  files through the interpreter, or (ii) to install some executable files
that bind the sources with the python interpreter. In the later  case  the  required
shared libraries must be installed in the same directory.

There are three ways to install the lossyfilters software:

  1. For Microsoft Windows(R) or compatible platforms, run the

        . setup_mwfiltersgui.exe installer, to install the free GUI with free filter
          libraries.

        . setup_lossifilters.exe installer, to install the free GUI with free filter
          libraries  plus  the  non-free  "Extra Filters Library" and "Lossy Filters
          Library".

     This is the recommended option for windows systems.

     It copies all the lossifilters binary files (executables and shared libraries),
     source files, examples and documentation in folder c:\lossyfilters (by default)
     and creates shortcuts to the application in the user Desktop  and  Start  Menu.
     Parameter files (.par) will be associated to the mwfiltersgui executable.

     In Microsoft  Windows(R)  Vista  or 7, it is necessary to execute the installer
     with "Windows XP SP3" compatibility mode in order to  successfully  create  the
     association  with  .par  files. Windows compatibility mode can be set by rigth-
     clicking the .exe setup  file  or  shortcut  and  then  clicking  "Troubleshoot
     compatibility".  In  some  cases,  it  mihgt  be  also necessary to execute the
     program as an administrator.

     There is an uninstall facility that can be accessed through the Windows Control
     Panel "Add/Remove Programs" or through the Start Menu in folder "All Programs /
     lossyfilters". It is recommened to uninstall the software before  installing  a
     newer  version.  Uninstallation  will leave untouched any stored results in the
     program folder (by default c:\lossyfilters) and -if the non-free libraries  are
     installed-  it  will also leave the license file in the program folder. The new
     installation must go to the same folder in order to access your stored  results
     and, if necessary, the license file.

  2. Copy  the lossyfilters binary executable files to a directory in your computer.
     This is not recommended for windows systems, since there  is  already  a  setup
     installer that does it nicely.

     The executable   files   are   compressed   in  files  with  sufix  'exe.linux-
     x86_64-2.7.tar.gz' or 'exe.win32-2.7.zip', where the file name sufix  indicates
     the  platform  (linux  or  windows),  the  architecture  (x86_64 or 32) and the
     version of the Python  interpreter  embedded  in  the  executables  (2.7).  The
     filename  prefix is 'mwfiltersgui' for the free GUI with free filter libraries,
     and 'lossyfilters' for the free GUI with free filter  libraries  plus  non-free
     "Extra  Filters  Library" and "Lossy Filters Library". Uncompress the tar.gz or
     the zip file to a folder in your computer. The name of the executable  file  is
     "mwfiltersgui".  See how to run the executables (see "Running the application")
     below.

     The linux executables do not work in all linux  installations,  as  the  shared
     libraries  supplied  with  the  executables correspond to the developer's linux
     distribution, and may  be  version-incompatible  with  other  shared  libraries
     installed  in the user's computer. The executables supplied in the CD have been
     tested in Debian Squezee/Sid and  Ubuntu  Karmic  distributions,  and  possibly
     should  work  in other Debian-based distributions. They have failed in SUSE and
     possibly will fail also in other rpm-based distributions. For that  reason,  in
     linux systems it is much better to run the python sources, option 3) below.

  3. Install python interpreter and libraries to run the python sources. This is the
     recommended  option  for  linux  systems.  See  section  on   installation   of
     interpreter  and  libraries  in  Linux (see "Install the python interpreter and
     libraries in Linux") below.

     With the python interpreter and required libraries installed, you can  run  the
     myfiltersgui.py source file.



5  Installing the non-free libraries license
********************************************

The procedure to install the license to run the non-free libraries is the following:

  1. Install the non-free libraries files:

        . If  you  are  *running  an  excutable files installation*, then the non-free
          libraries should be embedded within the  executables.  If  they  are  not,
          uninstall  the  software  and reinstall a new executable distribution that
          includes the non-free libraries.

        . If you are *running the source files* -not an executable files installation-
          copy the 'libextrafilters.pyc' file for the "Extra Filters Library" and/or
          the 'liblossyfilters.pyc' file for the "Lossy Filters Library",  plus  the
          libchecklicense.pyc file, to the folder containing your source files.

  2. Run the software following instructions in section Running the application (see
     "Running the application"): In the GUI, open a parameter  file  and  click  the
     'Compute button' to execute a synthesis.

  3. A  "License  Error"  message  will  appear  saying  that  you  do  not  have  a
     'AntennaLab_License.ini' file. Copy the sysinfo  number  that  appears  in  the
     message  and  sent  it  to  lossyfilters@tsc.upc.edu,  together with your name,
     company and e-mail information.

  4. When you receive the 'AntennaLab_License.ini'  file,  copy  it  to  the  folder
     containing  your lossyfilters source or executable files. For the windows setup
     installation, it is folder c:\lossyfilters\bin (by default).  The  folder  name
     where to copy the license file is given in the "License Error" message.

  5. Run again the software, open a parameters file and execute a synthesis to check
     that the license is valid. License information should appear in the main window
     GUI or in the console (if run from the command line with the - -nogui option).



6  Running the application
**************************


6.1  Launching the GUI
======================

There are  three ways to run the program, depending on how you installed it (windows
setup, executables or source files). See Installing the application (see "Installing
the application") above.

  1. *Windows setup installation*

     You can launch the program by:

        . Double-clicking  the Desktop icon. When the main window appears, click the
          "Open Parameter File" toolbar button and select a parameter  file  (.par).
          You can start with "Parameters.par" at the "examples" folder.

        . Click  the Windows Start Menu / All Programs / lossifilters and select the
          "mwfiltersgui" executable. When the main window appears, click  the  "File
          Open"  toolbar  button  and  select a parameter file (.par). You can start
          with "Parameters.par" at the "examples" folder.

        . Double-clicking a parameter file (.par)  in  your  Windows  Explorer.  The
          installer has asscoiated .par files with the mwfiltersgui executable. When
          the program opens, it will automatically open your parameter file.

  2. *Executable files installation*

     The executables are autoextractable compressed files that embed the sources and
     the  python  interpreter.  The  required shared libraries are supplied with the
     executables and must be installed in the same directory (see section Installing
     the application (see "Installing the application") above).

     The executable  file  name is "mwfiltersgui". See below the command line syntax
     (see "Command line arguments").

     Clicking or doublecliking the mwfiltersgui executable file in  a  file  manager
     should  open  the GUI. Then you can load a parameter file as explained above in
     this section.

  3. *Source file installation*

     With the Python interpreter and required libraries installed (see annex ),  you
     can  run  the  mwfiltersgui.py  source  file. This is the recommended option in
     linux  systems.  See  below  the  command  line  syntax  (see   "Command   line
     arguments").

     If the  .py  file extension is associated with the Python interpreter, clicking
     or doublecliking the mwfiltersgui.py source file in a file manager should  open
     the GUI. Then you can load a parameter file as explained above in this section.
     While in Windows systems the Python installation automatically  associates  .py
     files with the interpreter, it is not like that in most linux distributions. If
     this is your case, you have to use the settings  application  of  your  desktop
     manager to create the association.

After loading  a parameter file, the parameter edit window will show the contents of
your parameter file. Then click the  "Compute"  pushbutton  in  the  parameter  edit
window  or  the  "Execute  Synthesis"  button  in  the main window toolbar. A figure
plotting [S] parameters will appear. The you can click the "Coupling Matrix" toolbar
button  in  the main window and go to the coupling matrix window, where you can edit
or transform the matrix.


6.2  Command line arguments
===========================

     mwfiltersgui.py [-hvsrmep:] [filename]
     mwfiltersgui.py [-hvs] --nogui [filename]

 *- -nogui:* Do not open the GUI and run the  synthesis  from  the  console.  Needs  a
     filename parameter.

 *filename:* Parameter  file  name.  Mandatory  for  the  console  interface (- -nogui
     option), optional for the GUI.

 *-h:* Print a complete list of command line arguments.

 *-v:* Verbose output. Show more information (for debugging) at the log  in  the  main
     window (or at the console with -nogui flag).

 *-s:* Automatically  symmetrize Generalized Chebyshev zeros in Hz in order to compute
     a folded matrix with uniform Q in resonators.

 *-r:* Automatically run Synthesis. Needs simultaneous parameter file specification.
     Meaningless with console interface (- -nogui option), since  in  this  case  it
     always automatically runs synthesis and saves the results.

 *-m:* Automatically open Coupling Matrices window. Needs simultaneous -r flag.
     Meaningless  with  console  interface  (- -nogui option), since in this case it
     cannot open windows.

 *-e:* Automatically open Matrix Edit window. Needs simultaneous -m flag.
     Meaningless with console interface (- -nogui option), since  in  this  case  it
     cannot open windows.

 *-p N:* Save  all  default coupling matrices to file after they are computed, using N
     significant digits. By default the matrices must be saved  manually  using  the
     GUI.


6.3  Examples
=============

  1. Running executables in MS-Windows:

     Double click  mwfiltersgui.exe  in  the windows explorer or open a DOS terminal
     and run:

          c:\folder> mwfiltersgui -h
          c:\folder> mwfiltersgui --nogui parameter_file
          c:\folder> mwfiltersgui [parameter_file]

  2. Running executables in Linux:

     Open a Linux console and run:

          $ mwfiltersgui -h
          $ mwfiltersgui --nogui parameter_file
          $ mwfiltersgui [parameter_file]

  3. Running sources in MS-Windows:

     In MS-Windows, the .py files will be opened by the python  interpreter.  Double
     click mwfiltersgui.py in the windows explorer or run:

          c:\folder> mwfiltersgui.py -h
          c:\folder> mwfiltersgui.py --nogui parameter_file
          c:\folder> mwfiltersgui.py [parameter_file]

  4. Running sources in Linux:

     In most  linux  distributions python sources files will be automatically opened
     by the python interpreter if they have execute permission.

     Open a Linux console and run:

          $ mwfiltersgui.py -h
          $ mwfiltersgui.py --nogui parameter_file
          $ mwfiltersgui.py [parameter_file]

     If the system does not identify these files as python sources, run:

          $ python mwfiltersgui.py -h
          $ python mwfiltersgui.py --nogui parameter_file
          $ python mwfiltersgui.py [parameter_file]




A  Install the python interpreter and libraries in MS Windows
*************************************************************

Updated versions of  the  libraries  compiled  for  MS  Windows  can  be  found  in:
http://www.lfd.uci.edu/ gohlke/pythonlibs

Since PyQwt  library  is  no  longer  mantained, it is very important to get first a
compiled version of this library and then the exact versions of the other  libraries
against  which PyQwt has been compiled. Below we provide library version numbers and
download links that have work well in our instalation.

Please remember that PyQwt library must be the last to be installed.

  1. Python interpreter: http://www.python.org

      (a) Download  http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi  (32-bit
          windows)  or http://www.python.org/ftp/python/2.7.5/python-2.7.5.amd64.msi
          (64-bit).

      (b) Install  python-2.7.5.msi  or  python-2.7.5.amd64.msi.  Keep  all  default
          options.

  2. PyQt        GUI        development:        http://www.riverbankcomputing.co.uk,
     http://pyqwt.sourceforge.net

      (a) Download PyQt-Py2.7-x32-gpl-4.9.6-1.exe or  PyQt-Py2.7-x64-gpl-4.9.6-1.exe
          from http://www.lfd.uci.edu/ gohlke/pythonlibs

      (b) Install  PyQt-Py2.7-x32-gpl-4.9.6-1.exe  or PyQt-Py2.7-x64-gpl-4.9.6-1.exe
          AFTER installing  python-2.7.5.msi  or  python-2.7.5.amd64.msi.  Keep  all
          default options. It will detect the folder where python is installed.

      (c) In  order to update your PATH environment variable with the location of Qt
          libraries, logout and login again into Windows.

  3. Numpy and Scipy python modules: http://www.numpy.org and http://www.scipy.org

     The latest numpy and scipy versions that  have  been  tested  are  respectively
     1.7.1  and  0.12.0.  Earlier versions are not recommened, since the latest ones
     include bug fixes and funcionality enhancements that might be necessary for the
     correct function of the software. Although it is advisable to install the numpy
     and scipy library  versions  against  which  PyQwt  has  been  compiled,  newer
     versions may also work. If you prefer newer versions, be aware that there might
     be some incompatibility with pyqwt library 5.2 that may requiere  recompilation
     of that library agaist the new version of numpy and scipy.

      (a) Download
          http://sourceforge.net/projects/numpy/files/NumPy/1.7.1/numpy-1.7.1-win32-superpack-python2.7.exe.

      (b) Install    numpy-1.7.1-win32-superpack-python2.7.exe    AFTER   installing
          python-2.7.5.msi. Keep all default options.  It  will  detect  the  folder
          where python is installed.

      (c) Download
          http://prdownloads.sourceforge.net/scipy/scipy-0.12.0-win32-superpack-python2.7.exe

      (d) Install    scipy-0.12.0-win32-superpack-python2.7.exe   AFTER   installing
          numpy-1.7.1-win32-superpack-python2.7.exe. Keep all  default  options.  It
          will detect the folder where Python is installed.

      (e) Unofficial   Numpy  and  Scipy  installation  binaries  can  be  found  at
          http://www.lfd.uci.edu/ gohlke/pythonlibs/. There  are  versions  compiled
          for 64-bits and versions including high-performance Intel MKL libraries.

      (f) To  improve performance of linear algebra operations in Python, optionally
          install    either    the    Intel    Math     Kernel     Library     (MKL)
          http://www.intel.com/cd/software/products/asmo-na/eng/307757.htm   or  the
          Basic Linear Algebra Subprograms  (BLAS)  http://www.netlib.org/blas,  the
          Linear  Algebra  PACKage  (LAPACK)  http://www.netlib.org/lapack  and  the
          Automatically     Tuned     Linear      Algebra      Software      (ATLAS)
          http://math-atlas.sourceforge.net/  .  Although lossyfilters software does
          not perform operations with large matrices, it is advisable to install MKL
          or BLAS + LAPACK + ATLAS for other applications.

          Instructions for  installation  of Scipy with MKL or BLAS + LAPACK + ATLAS
          can be found in http://www.scipy.org/Installing_SciPy/Windows . The  ATLAS
          installation   web   page  http://math-atlas.sourceforge.net/atlas_install
          contains also useful information.

      (g) To improve performance of FFT operations in Python, optionally install the
          FFTW3 http://www.fftw.org library. Although lossyfilters software does not
          perform FFT operations, it is advisable to install the package  for  other
          applications.  Instructions for installation in MS-Windows can be found in
          http://www.fftw.org/install/windows.html . Pre-compiled DLL files  can  de
          downloaded   from   ftp://ftp.fftw.org/pub/fftw/fftw-3.2-dll.zip   (32-bit
          version)   and   ftp://ftp.fftw.org/pub/fftw/fftw-3.2-dll64.zip    (64-bit
          version).

  4. PyQwt library: http://pyqwt.sourceforge.net

      (a) Download  PyQwt-5.2.1-py2.7-x32-pyqt4.9.6-numpy1.7.1.exe  or  PyQwt-5.2.1-
          py2.7-x64-pyqt4.9.6-numpy1.7.1.exe                                    from
          http://www.lfd.uci.edu/ gohlke/pythonlibs

      (b) Install   PyQwt-5.2.1-py2.7-x32-pyqt4.9.6-numpy1.7.1.exe  or  PyQwt-5.2.1-
          py2.7-x64-pyqt4.9.6-numpy1.7.1.exe AFTER installing  python,  pyQt,  numpy
          and  scipy.  Keep  all  default  options.  It will detect the folder where
          python is installed.

  5. Eric development environment (OPTIONAL): http://eric-ide.python-projects.org

      (a) Download
          http://sourceforge.net/projects/eric-ide/files/eric4/stable/4.5.12/eric4-4.5.12.zip
          or         get         latest          4.x          version          from:
          http://sourceforge.net/project/showfiles.php?group_id=119070&package_id=233329
          .

      (b) Unpack: eric4-4.5.12.zip

      (c) In  the  folder where eric4-4.5.12.zip has been unpacked, AFTER installing
          python and pyQt, run:

               c:\folder> install.py

      (d) To run eric4, either run eric4.bat or eric4-tray.bat. Both are located  at
          the  python  folder  (for example, c:\Python27). The first opens the eric4
          IDE, while the second embeds an icon in the system tray, which contains  a
          context  menu  to  start eric4 and all its utilities. Double clicking this
          icon starts the eric4 IDE.



B  Install the python interpreter and libraries in Linux
********************************************************

You can either install binaries from your distribution repository  or  download  the
libraries  sources,  compile  and  install. Installing from the repository is highly
recommended, as compiling and installing the sources will fail if there are  missing
library  headers  in  the system. If this is the case, the corresponding development
libraries must be installed from your distribution repository in order  to  get  the
missing headers.

Before taking  any  steps to install the libraries, it is advisable to check if they
are already installed.


B.1  Install from the repository
================================


B.1.1  Installation example
---------------------------

Normally it will be enough to install python2.5, python2.6 or python  2.7,  and  the
latest   versions  of  pyQt4,  scipy  and  pyQwt5.  The  other  packages  should  be
automatically installed as dependencies.

* Example for distributions with apt package system * (change package names  depending
on your distribution):

     # apt-get install python2.7 python-qt4 python-scipy python-qwt5-qt4 libatlas3gf-base libfftw3-3

Packages libatlas3gf-base  and  libfftw3-3  above  are optional and intended only to
improve performance with large matrix algebra. Since the lossyfilters software works
with small matrices, there will be no performace improvement using these libraries.


B.1.2  Full list of packages
----------------------------

The following  packages must be installed in the system (note that the package names
may vary from one distribution to another):

   . *Python interpreter*: python2.5, python2.6 or  python  2.7.  Although  all  these
     versions will run the .py lossyfilters sources, only version 2.6.x will run the
     .pyc bytecode files distributed with  version  <=2.0  of  the  software.  Later
     versions (>2.0) will run with python 2.7.x . Accordingly, any Python python2.5,
     python2.6 or python 2.7 can be used to run the  free  GUI  and  free  libraries
     source files. Regarding the non-free "Extra Filters Library" and "Lossy Filters
     Library", users having the .py source files in their system can  also  use  any
     python2.5,  python2.6  or  python 2.7 version, while users having only the .pyc
     files (the most common case) need Python 2.6.x for lossyfilters  version  <=2.0
     and Python 2.7.x for lossyfilters version >2.0 .

   . Qt4 version 4.5.x or later (libqtcore4 and libqtgui4 on Debian, ... )

   . sip4 version 4.8 or later, should be compatible with the version of pyQt4 to be
     installed below (python-sip4 in Debian, ......... )

   . Qscintilla2 Python bindings version 2.4 or later, should be compatible with the
     version  of  pyQt4  to be installed below (python-qscintilla2 on Debian, ... ).
     Needs Qscintilla2 library, but it should  be  automatically  installed  by  the
     linux package management utility.

   . pyQt4  version  4.5.x  or  later  (python-qt4 in Debian, kdebindings3-python in
     SUSE>=9.2, ... )

   . numpy version 1.5.1 or later, should be compatible with the version of scipy to
     be installed below (python-numpy in Debian)

   . scipy version 0.8 or later (python-scipy in Debian)

   . pyQwt5  version  5.2  or  later, should be compatible with the version of pyQt4
     installed above (python-qwt5-qt4 in Debian). It should be also compatible  with
     the version of numpy installed above.

     Since the pyQwt5 package is not updated frequently, it may be incompatible with
     the versions of Qt4 and sip in your system. If this is the  case,  running  the
     mwfiltersgui  executable  with  throw  an  error when interacting with the plot
     graph window. To solve the problem you can recompile the pyQwt5 package in your
     system.  In  debian  based  systems, the instructions for package recompilation
     are:

          # apt-get built-dep python-qwt5-qt4
          # apt-get source -b python-qwt5-qt4

The following combinations of package versions have been tested successfully:

   . Python 2.5.4, sip4 4.9, python-sip4 4.9, Qt4  4.5.3,  pyQt4  4.6,  Qwt5  5.2.0,
     pyQwt5 5.2.1, numpy 1.3.0, scipy 0.7.0 in Debian unstable (2009-11-12)

   . Python  2.6.4,  sip4  4.9,  python-sip4  4.9, Qt4 4.5.3, pyQt4 4.6, Qwt5 5.2.0,
     pyQwt5 5.1.1, numpy 1.3.0, scipy 0.7.0 in Ubuntu 9.10 Karmic

   . Python 2.6.5, sip4 4.10.1, python-sip4 4.10.1, Qt4  4.6.2,  pyQt4  4.7.2,  Qwt5
     5.2.0, pyQwt5 5.2.1, numpy 1.3.0, scipy 0.7.0 in Ubuntu 10.04 Lucid

   . Python  2.6.6,  sip4  4.10.5,  python-sip4 4.10.5, Qt4 4.7.0, pyQt4 4.7.4, Qwt5
     5.2.0, pyQwt5 5.2.1, numpy 1.3.0, scipy 0.7.2 in Ubuntu 10.10 Maverick

   . Python 2.6.6, sip4 4.10.5, python-sip4 4.10.5, Qt4  4.7.0,  pyQt4  4.7.4,  Qwt5
     5.2.0, pyQwt5 5.2.1, numpy 1.4.1, scipy 0.7.2 in Ubuntu 10.10 Maverick

   . Python  2.6.6,  sip4  4.11.2,  python-sip4 4.11.2, Qt4 4.7.0, pyQt4 4.8.1, Qwt5
     5.2.0, pyQwt5 5.2.1, numpy 1.5.1, scipy 0.8.0 in Ubuntu 10.10 Maverick

   . Python 2.7.1, sip4 4.11.2, python-sip4 4.11.2, Qt4  4.7.2,  pyQt4  4.8.3,  Qwt5
     5.2.0, pyQwt5 5.2.1, numpy 1.5.1, scipy 0.8.0 in Ubuntu 11.04 Natty

   . Python  2.7.3,  python-sip  4.13.3,  Qt4 4.8.3, pyQt4 4.9.3, Qwt5 5.2.1, pyQwt5
     5.2.1, numpy 1.6.2, scipy 0.10.0 un Ubuntu 12.10 Quantal

Optional packages with optimized libraries to  increase  performance  of  Numpy  and
Scipy are:

   . atlas  (libatlas3gf-base  in  Debian).  The  Automatically Tuned Linear Algebra
     Software (ATLAS) http://math-atlas.sourceforge.net/ library is optional, but it
     will  greatly  increase performance of linear algebra operations in Python. The
     Basic Linear Algebra  Subprograms  (BLAS)  http://www.netlib.org/blas  and  the
     Linear   Algebra   PACKage   (LAPACK)   http://www.netlib.org/lapack   will  be
     automatically  installed  as  dependencies  when  installing  ATLAS.   Although
     lossyfilters  software  does  not perform operations with large matrices, it is
     advisable to install the package for other applications.

   . fftw3  (libfftw3-3  in  Debian).  The  FFTW3  http://www.fftw.org  library   is
     optional,  but  it will greatly increase performance of FFT in Python. Although
     lossyfilters software does not perform  FFT  operations,  it  is  advisable  to
     install the package for other applications.


B.1.3  Notes:
-------------

  1. The  python  interpreter will be already installed in most linux distributions.
     It MUST BE python version 2.5, version 2.6 or version 2.7  .  Earlier  versions
     will not work, and version 3 is backwards incompatible.

  2. Qt4  library and possibly sip4 and pyQt4 will be present in linux installations
     having the KDE desktop (for example Kubuntu and Debian with KDE).

  3. In Ubuntu 10.10 Maverick and in Ubuntu 11.04 Natty, the python-qwt5-qt4 package
     may  need  to  be recompiled in order to work successfully with the versions of
     sip and Qt4 installed in the system. See above for recompilation instructions.

  4. The latest numpy and scipy versions available in Ubuntu that have  been  tested
     when  preparing  this  document (2013-06-11) are respectively 1.6.2 and 0.10.0.
     Earlier versions are not recommened, since the latest ones  include  bug  fixes
     and  funcionality enhancements that might be necessary for the correct function
     of the software. Install newer versions with caution, since there might be some
     incompatibility  with  pyqwt  library  5.2  that  may requiere recompilation of
     package python-qwt5-qt4.

     In Ubuntu 10.10 Maverick (updated 2010-11-26) the  latest  version  of  python-
     numpy  and  python-scipy  packages  available in the repository is respectively
     1.3.0 and 0.7.2. If you wish to install newer versions, you can  download  them
     from  the  debian  unstable  or  Ubuntu  11.04  Natty  repositories  and  check
     dependencies to see if they are compatible with other packages in your system:

     http://ftp.de.debian.org/debian/pool/main/p/python-numpy/python-numpy_1.5.1-2+b1_amd64.deb

     http://de.archive.ubuntu.com/ubuntu/pool/main/p/python-numpy/python-numpy_1.5.1-1ubuntu2_amd64.deb

     http://ftp.de.debian.org/debian/pool/main/p/python-scipy/python-scipy_0.9.0+dfsg1-1+b2_amd64.deb

     http://de.archive.ubuntu.com/ubuntu/pool/universe/p/python-scipy/python-scipy_0.8.0+dfsg1-1ubuntu1_amd64.deb
     for 64-bit systems and

     http://ftp.de.debian.org/debian/pool/main/p/python-numpy/python-numpy_1.5.1-2+b1_i386.deb

     http://de.archive.ubuntu.com/ubuntu/pool/main/p/python-numpy/python-numpy_1.5.1-1ubuntu2_i386.deb

     http://ftp.de.debian.org/debian/pool/main/p/python-scipy/python-scipy_0.9.0+dfsg1-1+b2_i386.deb

     http://de.archive.ubuntu.com/ubuntu/pool/universe/p/python-scipy/python-scipy_0.8.0+dfsg1-1ubuntu1_i386.deb
     for 32-bit.

     In Ubuntu 11.04 Natty (updated 2011-05-07) the latest versions are python-numpy
     1.5.1 and python-scipy 0.8.0.

  5. Detailed  and  updated  instructions  for  installation of Numpy and Scipy with
     optimized   linear   algebra   and   FFTW   libraries   can   be    found    in
     http://www.scipy.org/Installing_SciPy/Linux.  The  ATLAS  installation web page
     http://math-atlas.sourceforge.net/atlas_install    contains     also     useful
     information.

     In 2009 we prepared a script to install ATLAS in a Debian distribution:

        . Unpack file build_atlas_debian.tar.gz

        . Run build_atlas.sh script.

     This script  is  now  obsolete, but it is distributed with the software just in
     case it may be useful to somebody. It should be easy to modify the  script  for
     other       distributions,       following       the       instructions      in
     http://www.scipy.org/Installing_SciPy/Linux                                 and
     http://math-atlas.sourceforge.net/atlas_install .

     In Ubuntu  10.10  Maverick  (and  possibly  11.04  Natty),  the instructions to
     compile ATLAS library customized for your CPU are:

          $ sudo apt-get build-dep libatlas3gf-base
          $ sudo apt-get install devscripts
          
          $ mkdir optim_libs
          $ cd optim_libs
          $ apt-get source libatlas3gf-base
          $ cd atlas-*
          $ fakeroot debian/rules custom
          $ cd ..
          $ sudo dpkg -i libatlas3gf-base_*.deb


B.2  Download, compile and install the sources
==============================================

In the first place,  it  is  necessary  to  have  the  GNU  C++  compiler  installed
http://gcc.gnu.org/.  From  the  repository  of  your distribution, install *g++* (the
package name may vary from one distribution to another). Other packages such as  gcc
and libraries should be automatically installed as dependencies.

* Example for distributions with apt package system: *

     # apt-get install g++

It is likely that the compilation process detects missing headers (*.h C/C++ files).
If this is the case, you have to find which is the development package that contains
this file. For example, we found that file Xlocale.h was missing. Running

     # apt-file search Xlocale.h

reported

     libx11-dev: /usr/include/X11/Xlocale.h

which means that we have to install the libx11-dev library:

     # apt-get install libx11-dev

* Installation procedure: *

  1. Python interpreter: http.//www.python.org

        . Download  http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz  or  get
          the   latest   2.5.x   or   2.6.x   version   (not   Python    3)    from:
          http://www.python.org/download/

        . Unpack to a folder.

        . Follow instructions in README file. The summarized steps are:

               $ ./configure
               $ make
               $ sudo make install

  2. PyQt GUI development: http://www.riverbankcomputing.co.uk

     Before you  can  build  PyQt  you  must have already built and installed the Qt
     library, SIP and Qscintilla2:

      (a) Qt:

             . Download
               http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.1.tar.gz
               or        get        the         latest         version         from:
               http://www.qtsoftware.com/downloads/linux-x11-cpp

             . Unpack to a folder.

             . Follow instructions in INSTALL file. The summarized steps are:

                    $ ./configure
                    $ make         (takes a long time to compile)
                    $ sudo make install

      (b) SIP:

             . Download
               http://www.riverbankcomputing.com/static/Downloads/sip4/sip-4.11.2.tar.gz
               or         get         the         latest        version        from:
               http://www.riverbankcomputing.com/software/sip/download.

             . Unpack to a folder.

             . Follow instructions in doc/sipref.html document. The summarized steps
               are:

                    $ python configure.py
                    $ make
                    $ sudo make install

      (c) Qscintilla2:

             . Download
               http://www.riverbankcomputing.co.uk/static/Downloads/QScintilla2/QScintilla-gpl-2.4.5.tar.gz
               or         get         the         latest        version        from:
               http://www.riverbankcomputing.co.uk/software/qscintilla/download

             . Unpack to a folder.

             . Follow  instructions   in   doc/html-Qt4/index.html   document.   The
               summarized steps are:

                    $ cd Qt4
                    $ qmake qscintilla.pro
                    $ make
                    $ sudo make install
                    $ cd ../Python
                    $ python configure.py
                    $ make
                    $ make install

      (d) pyQt:

             . Download
               http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-4.8.1.tar.gz
               or         get         the         latest        version        from:
               http://www.riverbankcomputing.co.uk/software/pyqt/download

             . Unpack to a folder.

             . Follow instructions in README file. The summarized steps are:

                    $ python configure.py
                    $ make
                    $ sudo make install

  3. Numpy and Scipy: http://www.numpy.org http://www.scipy.org.

     Detailed instructions for installation of Numpy and Scipy with optimized linear
     algebra libraries can be found in http://www.scipy.org/Installing_SciPy/Linux.

        . Optimized libraries for Numpy and Scipy (OPTIONAL):

             - To  improve  performance  of  FFT  operations  in  Python, optionally
               install the FFTW3 http://www.fftw.org library. Although  lossyfilters
               software  does not perform FFT operations, it is advisable to install
               the      package      for      other      applications.      Download
               http://www.fftw.org/fftw-3.2.tar.gz  or  get  the latest version from
               http://www.fftw.org/download.html, unpack and follow the instructions
               in the INSTALL file.

             - To  improve  performance  of  linear  algebra  operations  in Python,
               install   either   the    Intel    Math    Kernel    Library    (MKL)
               http://www.intel.com/cd/software/products/asmo-na/eng/307757.htm   or
               the      Basic      Linear      Algebra      Subprograms       (BLAS)
               http://www.netlib.org/blas,   the  Linear  Algebra  PACKage  (LAPACK)
               http://www.netlib.org/lapack  and  the  Automatically  Tuned   Linear
               Algebra   Software   (ATLAS)   http://math-atlas.sourceforge.net/   .
               Although lossyfilters software does not perform operations with large
               matrices, it is advisable to install MKL or BLAS + LAPACK + ATLAS for
               other applications.

          Instructions for installation of Scipy with MKL + FFTW or BLAS + LAPACK  +
          ATLAS  + FFTW can be found in http://www.scipy.org/Installing_SciPy/Linux.
          The           ATLAS            installation            web            page
          http://math-atlas.sourceforge.net/atlas_install   contains   also   useful
          information.

          We have written a script to install ATLAS in a Debian distribution:

             - Unpack file build_atlas_debian.tar.gz

             - Run build_atlas.sh script.

          It should be easy to modify this script for other distributions, following
          the   instructions   in   http://www.scipy.org/Installing_SciPy/Linux  and
          http://math-atlas.sourceforge.net/atlas_install .

        . Download
          http://sourceforge.net/projects/numpy/files/NumPy/1.5.1/numpy-1.5.1.tar.gz

        . Unpack: numpy-1.5.1.tar.gz to a folder.

        . In the folder where numpy-1.5.1.tar.gz has been  unpacked,  edit  site.cfg
          file with the location of your MKL or ATLAS libraries and run:

                                 $ python setup.py build
                                 $ sudo python setup.py install

        . Download
          http://sourceforge.net/projects/scipy/files/scipy/0.8.0/scipy-0.8.0.tar.gz

        . Unpack: scipy-0.8.0.tar.gz to a folder.

        . In  the  folder  where scipy-0.8.0.tar.gz has been unpacked, edit site.cfg
          file with the location of your MKL or ATLAS libraries and run:

                                 $ python setup.py build
                                 $ sudo python setup.py install

  4. pyQwt: http://pyqwt.sourceforge.net

        . Download http://prdownloads.sourceforge.net/pyqwt/PyQwt-5.2.0.tar.gz

        . Unpack to a folder.

        . Follow  instructions   in   Doc/html/pyqwt/installation.html   file.   The
          summarized steps are:

                                 $ cd PyQwt-5.2.0
                                 $ cd configure
                                 $ python configure.py -Q ../qwt-5.2
                                 $ make
                                 $ sudo make install

  5. Eric development environment (OPTIONAL): http://eric-ide.python-projects.org

        . Download
          http://sourceforge.net/projects/eric-ide/files/eric4/stable/4.4.13/eric4-4.4.13.tar.gz
          or             get             latest             version            from:
          http://sourceforge.net/project/showfiles.php?group_id=119070&package_id=233329

        . Unpack: eric4-4.4.13.tar.gz to a folder.

        . In  the  folder  where  eric4-4.4.13.tar.gz  has  been   unpacked,   AFTER
          installing python and pyQt, run:

                                 $ python install.py

        . Eric4   executable   should   be   installed  in  your  linux  path  (e.g.
          /usr/local/bin/eric4 ). Run eric4 from the command line

                                 $ eric4

          or create a link in your desktop.




